Computer user interface forms provide a method of entering data into a computer system. These predefined forms typically include various interface components, including fields where the user enters text. Because computers require rigid precision in the data that they process and humans are often limited in their ability to recall the precise input required, software designers implement facilities to assist users in filling in the precise data required. These facilities often receive user input, parse the input into a computer-understandable form, and perform a search in a database of valid input data for likely matches. Once a match is found, the user instructs the system to fill in the field with the match. For example, on many airline booking sites, the user enters text into free form fields. These fields may be the departure and destination airports for the flight search. These sites generally require a unique three-letter code to be entered for the airports. However, the form fields sometimes permit the user to enter the unique code, a city name, a city and state, or a point of interest. The system then searches allocated database(s) for any matches to the user input and presents the user with possible matching airports from which the user may select. Once the user makes a selection, the system fills in the data and submits the form with the selected airport codes.
A problem arises because users may enter data differently. Even a slight change in the form of the input may prevent the parser from parsing the free form input and hence prevent the system from matching the input. For example, one individual may enter a city and state as [city], [state] while another individual may enter [state]: [city]. If the latter format is not anticipated by the software developer, the system will be unable to parse the input. Therefore, systems and methods are desirable that permit a user to configure an input parser and search algorithm at run time to customize the way that data is input into the system.